1. Field of the Invention
The present invention is directed to insuring the use of compatible versions of updated application software by both an implantable medical device and a control device by which the implant is programmed.
2. Description of Related Art
Application software instrumental in operating an electronic device may be upgraded thereby producing different versions or generations. These upgrades or different versions may provide additional features and/or correct for programming errors. Today it is not uncommon for electronic devices to communicate with one another. To insure proper operation among the devices it is important that the version of application or operating software associated with each device be compatible.
One specific example is in the case of an implantable medical device whose operation is programmed via a control device, typically an external wireless control device disposed outside the body. Over a period of time, multiple versions of application software may be installed in different implantable medical devices. It is therefore essential that the application software for operating a control device be compatible with the current version of the application software utilized by the implantable medical device being programmed using that control device.
Some concerns and problems associated with the use of different versions of application software in an implantable medical device have been addressed. U.S. Pat. No. 5,800,473 discloses a system and method for the automatic update of the software of an external programmer implant. The programmer and the implant communicate bi-directionally. Automatic updating occurs by the programmer reading the memory of the implant, establishing a list of objects that are found in the implant with their respective versions, comparing the list of the objects (and their versions) that are in the programmer software, downloading from the implant those objects which are not found in the programmer software; and/or downloading from the implant those objects in the programmer software whose version is prior to the version of the object found in the implant, and to replace the programmer software objects, with the more current version. This patented approach, however, is disadvantageous in that since the current version replaces the previous programmer software objects, only one version of the software is stored in the programmer at any given time thereby requiring that the current version of the programming software be downloaded from the implant to the programmer.
Additional disadvantages associated with the patented system include: (a) significant hardware and software complexity required on the implant side; (b) energy transfer; (c) lifetime, and (d) communication time. Each of these issues will be addressed separately.
With respect to the issue of the complexity of the implant software, since the implant application software is wirelessly upgradeable, the implant requires independent software (e.g., boot loader software) separate from the application software to manage the upgrade process of the application software. The management of the programming process insured by this separate software significantly effects both the software and hardware complexity of the implant implementation. In a first aspect, this separate programming managing software has to insure that some of the implant functionalities remain active while the application software is being updated (during the period in which the programming is downloaded the application software cannot be active, and, yet certain functionality associated with the implant must remain active, e.g., a pacemaker must monitor the pace at all times). Second, this separate programming managing software has to insure the programming process is safe and performs without errors (the error management and the verification of the integrity of the new updated code requires relatively complex software).
The next disadvantages to be addressed are that of energy transfer and lifetime. During programming, any non-volatile flash memory typically requires a larger supply voltage to operate and thus a level of energy considerably higher than the level required for a non-programmable read only memory device. This can be a disadvantage with respect to both active (with battery) and passive (without battery) implants. In the case of active implants, the lifetime of the implant may be significantly affected, whereas in the case of passive implants, it is difficult to transfer a sufficient amount of energy to the implant because of technical reasons and/or regulatory limitations, for example, specific absorption rate.
The last disadvantage associated with the patented system is that of communication time. Depending on the size of the code to be updated and on the wireless data rate, the communication time can be significantly impacted.
It is therefore desirable to store all possible versions, or at least multiple versions, of the application software in the control device compatible with all existing versions, or at least multiple versions, of the implantable medical device application software thereby eliminating having to download application programming updates from the implant to the control device while still insuring that the control device correlates a compatible version of its application software with the current application software being utilized by any particular implantable medical device.